package cn.epsilon3.annotation;


import cn.epsilon3.constant.DesensitizationFieldEnum;

import java.lang.annotation.*;

/**
 * @author epsilon3
 * @version 1.0
 * @project epsilon3-module-core
 * @description 脱敏数据字段属性
 * @date 2023/6/10 00:27:20
 */
@Documented
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface E3DesField {

    /**
     * 显示的前缀位数
     * @return
     */
    int prefixLength() default 0;

    /**
     * 显示的后缀位数
     * @return
     */
    int suffixLength() default 0;

    /**
     * 隐藏的前缀位数
     * @return
     */
    int hidePrefixLength() default 0;

    /**
     * 隐藏的后缀位数
     * @return
     */
    int hideSuffixLength() default 0;

    /**
     * 预设类型
     * @return
     */
    DesensitizationFieldEnum type() default DesensitizationFieldEnum.NONE;


    /**
     * 替换的字符
     * @return
     */
    String replaceStr() default "*";
}
